package cn.tedu.Map;/**
 * @Author 金帮嘉诚 @Date 2021-06-22 星期二 11:06
 */
/*本类用于测试Map迭代*/

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * 知识点
 */
public class TestMap2 {
    public static void main(String[] args) {
//        Map m=new Map<>();报错
        Map<Integer, String> map = new HashMap<Integer, String>();

        map.put(1111, "汉堡包");
        map.put(1112, "原味鸡块");
        map.put(1113, "香辣鸡块");
        map.put(1114, "冰淇淋");
        map.put(1116, "巧克力甜筒");
        System.out.println("map = " + map);

        //迭代
        /*前提：Map本身没有迭代器，所以需要转成其他集合进行迭代
        方案一：Set<Key> keySet（）--将map中的所有key值取出，存入set集合
        方案二：Set<Key,Value> entrySet()
        --把map中的一堆Key&Value取出，形成一个个Entry<K,V>
        将Entry作为一个个独立的元素存入set中*/
        //1.建Set
        //2.1.获取迭代器
        //2.2.循环迭代
        //2.3.输出迭代到的元素（首先要分别得到key和value）
        System.out.println("-------------------------------------------------------");
//        Set<Integer> keySet = map.keySet();
//        Iterator<Integer> it = keySet.iterator();
//        while (it.hasNext()) {
//            Integer key = it.next();
//            String value = map.get(key);
//            System.out.println("["+key+"="+value+"]");
//        }
        Set<Integer> keySet= map.keySet();
        Iterator<Integer> it1= keySet.iterator();
        while (it1.hasNext()){
            Integer key= it1.next();
            String value= map.get(key);
            System.out.println("["+key+"="+value+"]");
        }


        System.out.println("-------------------------------------------------------");

//        Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
//        Iterator<Map.Entry<Integer, String>> it1 = entrySet.iterator();
//        while (it1.hasNext()) {
//            Map.Entry<Integer, String> entry = it1.next();
//            Integer key = entry.getKey();
//            String value = entry.getValue();
//            System.out.println("["+key+"="+value+"]");
//        }
        Set<Map.Entry<Integer,String>> entrySet= map.entrySet();
        Iterator<Map.Entry<Integer,String>> it2= entrySet.iterator();
        while (it2.hasNext()){
            Map.Entry<Integer,String> entry=it2.next();
            Integer key= entry.getKey();
            String value= entry.getValue();
            System.out.println("["+key+"="+value+"]");
        }
        System.out.println("-------------------------------------------------------");

    }
}
